The present invention relates to methods for encoding and decoding program code according to a first data format for use by apparatuses supporting modified versions of that format, and also to a receiver or decoder apparatus employing such methods.
Such methods may be used to provide a common format for the transmission and exchange of data (for example audio and video data and/or programming commands) between the products of different manufacturers, or between products supporting differing formats but having such a common format defining a basic level of shared functionalities. The common format data is in the form of program code written for an imaginary processor which is then translated into the native code of the processor it is to finally run on in the target or receiving apparatus.
Titles written according to the common data format will include both an application program and data for use by that program, with the format specifying the environment in which the application program will run and the form in which the data, including the application program itself, is distributed. The titles themselves will be distribution medium independent, such that the application may be constructed with little or no knowledge of the distribution medium up until a mastering stage where it is committed to a particular one of a number of distribution formats (for example via data network or on optical disc) consistent with the common format. The only cases where knowledge of the distribution medium may be required in advance of the mastering stage is where the application needs to know distribution medium size, data rate or latency.
A title written according to the common format will also be platform independent, which means that it will play on any platform supporting the format. It is independent of platform characteristics such as processor choice or graphics system architecture, although there will be a minimum base level of capabilities specified by the common format standard below which a platform cannot support the common format.
To allow for upgrades and different performance-level models of a manufacturers products, titles written according to the format are scalable which means that they will play on a platform of any level of capability, provided that that platform supports the common format standard. A title must always be capable of running on a player with the base level of capabilities. Where more than base performance is available, then there will often be more application features or a higher level of presentation quality.
Whilst the above techniques allow developers to develop for one platform only and still have their applications run on many platforms, the method of code production does not always result in code that is as fast as the native code on a given platform. This may be due, for example, to differences between the number of registers of the virtual machine and those of the actual machine.